///////////////////////////////////////////////////////////////////////////////

//#pragma once

///////////////////////////////////////////////////////////////////////////////

extern volatile int __irq_nesting_counter;

///////////////////////////////////////////////////////////////////////////////

__attribute__((always_inline)) /*__STATIC_INLINE*/ void __disable_irq_nested(void)
{
    __disable_irq();
    __irq_nesting_counter++;
}

///////////////////////////////////////////////////////////////////////////////

__attribute__((always_inline)) /*__STATIC_INLINE */void __enable_irq_nested(void)
{
    if (--__irq_nesting_counter == 0)
    {
        __enable_irq();
    }
}

///////////////////////////////////////////////////////////////////////////////

